import type {
    BoStatusEnum, BoTypeEnum, CooperationDurationTypeEnum, IncentiveOpenEnum, IncentiveTypeEnum,
    ReleaseTypeEnum,
    OpReviewStatus,
    ModuleTypeEnum,
    JoinFlagEnum,
} from "@/enums/businessOpportunitiesEnum";
import type { AssTypeEnum } from "@/enums/orderEnums";
import { PushShowType } from "@/enums/resourceLeague";

// 公共类型
interface CommonBusinessOpportunityFields {
    /** 供需类型: 1供应 2需求 */
    boType: BoTypeEnum;
    /** 标题 */
    title: string;
    /** 合作类型ID: 运营端配置 */
    cooperationTypeId: number | undefined;
    /** 合作类型名称: 运营端配置 */
    cooperationTypeName: string;
    /** 合作期限类型: 1长期；0限制日期前 */
    cooperationDurationType: CooperationDurationTypeEnum;
    /** 合作期限日期 */
    cooperationDatetime: string;
    /** 供需状态 */
    boStatus?: BoStatusEnum;
    /** 预估规模 */
    estimatedScale: string;
    /** 撮合开关；0:否;1是 */
    incentiveOpen: IncentiveOpenEnum;
    /** 撮合激励类型: 1佣金激励；2:其他激励 */
    incentiveType: IncentiveTypeEnum;
    /** 撮合说明 */
    incentiveDetails: string;
    /** 撮合佣金比例 */
    incentiveCommissionRate?: number;
    /** 发布类型 */
    releaseType?: ReleaseTypeEnum
}

// 发布供需信息
export interface IBusinessOpportunity extends CommonBusinessOpportunityFields {
    memberId?: number;
    id?: number;
    /** 详情 */
    details: string;
    /** 行业分类子级ids，多个用逗号分隔 */
    industryCategoryIdList: string[];
    /** 省份ID */
    provinceId: number | undefined;
    /** 市ID */
    cityId: number | undefined;
    /** 区ID */
    // areaId: number;
    /** 省名称 */
    provinceName: string;
    /** 市名称 */
    cityName: string;
    /** 区名称 */
    // areaName: string;
    /**【服务专员配置】推广佣金比例 */
    promotionCommissionRate: number;
    /**【服务专员配置】分配说明 */
    distributeRemarks: string;
    /** 附件集合 */
    attachmentUrls: string[];
}

// 供需列表
export interface IBusinessOpportunityList extends CommonBusinessOpportunityFields {
    /** id查询 */
    id: number;
    boInfoId: number;
    /** 行业分类子级名称，多个用逗号分隔 */
    industryCategoryNames?: string;
    /** 是否代理 */
    agent: number;
    /** 收藏人数 */
    collectPeopleNum: number;
    /** 浏览次数 */
    browseNum: number;
    /** 合作数 */
    cooperationNum: number;
    /**推广组织数 */
    promotionTenantNum: number;
    /**推广人数 */
    promotionPeopleNum: number;
    /**浏览人数 */
    browsePeopleNum: number;
    /** 更新时间 */
    updateTime: string;

    /**来源 */
    orgName: string;

    /** 用户名称 */
    userName: string;
    /** 会员职务 */
    memberLevelName: string | null;
    /**供需服务专员 */
    sysUserName: string;
    /** 单位名称 */
    companyName: string;
    /** 单位职务 */
    companyPosition: string;

    /** 头像 */
    avatar: string;

    /** 联系方式 */
    phone: string;
}

export interface IQuery {
    // 当前页
    current: number;
    // 每页条数
    size: number;
}

export interface IBoInfoListQuery extends IQuery {
    /**供需状态 */
    boStatus: BoStatusEnum | null
}

/**
 * 供需管理列表（我管理的查询参数）
 */
export interface ISysBoInfoListQuery extends IQuery {
    cooperationTypeIdList: number[],
    industryCategoryIdList: string[],
    keyWord: string
}

/**
 * 供需库查询参数
 */
export interface IBoLibListQuery extends IQuery {
    cooperationTypeIdList: number[],
    industryCategoryIdList: string[],
    keyWord: string,
    assType: AssTypeEnum | undefined
}


/**
 * 审核列表查询参数
 */
export interface IReviewListQuery extends IQuery {
    OpReviewStatus: OpReviewStatus | undefined
    keyWord: string
}




/**
 * 合作类型
 */
export interface ICooperationType {
    id: number;
    /**
     * 合作类型名称
     */
    cooperationTypeName: string;
}




/**
 * 审核入参
 */
export interface ReviewData {
    /** 审核记录id */
    id: number;
    /** 审核状态(0:待审核;1:审核通过;2:审核不通过;3:搁置) */
    reviewStatus: OpReviewStatus;
    /** 审核备注/意见 */
    reviewContent?: string;
}



/**
 * 供需审核列表
 */
export interface IBusinessOpportunityReviewList extends CommonBusinessOpportunityFields {
    /** 供需ID */
    id: number;
    /** 供需ID */
    boInfoId: number | undefined;
    /** 行业分类子级名称，多个用逗号分隔 */
    industryCategoryNames: string;
    /** 审核备注/意见 */
    reviewContent: string | null;
    /** 审核状态 */
    reviewStatus?: OpReviewStatus;
    /**     省份名称 */
    provinceName: string;
    /** 市名称 */
    cityName: string;
    /**关闭权限 */
    closeAuth:boolean;

    /**来源 */
    orgName: string;

    /** 用户名称 */
    userName: string;
    /** 会员职务 */
    memberLevelName: string | null;
    /**供需服务专员 */
    sysUserName: string;
    /** 单位名称 */
    companyName: string;
    /** 单位职务 */
    companyPosition: string;

    /** 头像 */
    avatar: string;

    /** 联系方式 */
    phone: string;

}



/**跟进记录表单 */
export interface IFollowRecordFrom {
    /** ID */
    id?: number;
    /** 供需ID */
    boInfoId: number | undefined;
    /** 跟进时间 */
    followTime?: string;

    /** 跟进方式，例如电话沟通、邮件沟通等，字符串类型 */
    followMethod?: string;
    /** 跟进内容摘要 */
    followSummary?: string;
    screenshotPathsList: string[]
    /** 跟进文件附件路径 */
    attachmentPathsList: string[]
}

/**跟进记录 */
export interface IFollowRecord extends IFollowRecordFrom {
    /** ID */
    id: number;
    /** 创建者ID */
    createBy: number;
    /** 创建时间 */
    createTime: string;
    /** 更新时间 */
    updateTime: string;
    /** 沟通记录截图路径 */
    screenshotPaths?: string;
    /** 用户名称 */
    userName: string;
    /**是否可以编辑 */
    opAuth:boolean;
    /** 公司名称 */
    companyName: string;
    /** 公司职务 */
    companyPosition: string;
    /** 会员职务 */
    memberLevelName: string;
    /** 跟进文件附件路径 */
    attachmentPath?: string;
    /** 记录来源名称，机构id为0，则为平台官方 */
    sourceName: string;
    /**用户id */
    sysUserId: number;
}


export interface IOpDataCount {
    /** 收藏人数 */
    collectPeopleNum: number;

    /** 浏览人数 */
    browsePeopleNum: number;

    /** 浏览次数 */
    browseNum: number;

    /** 推广人数 */
    promotionPeopleNum: number;

    /** 推广组织数 */
    promotionTenantNum: number;

    /** 合作意向数 */
    cooperationNum: number;

    /** 合作成功数 */
    cooperationSuccessNum: number;
}


export interface IPushConfig extends IBusinessOpportunity {
    /** 供需ID */
    id: number;
    /**推广可见类型【0:全部；1:部分：2: 全部不可见】 */
    pushShowType: PushShowType;
    tenantIds: number[];
    // 关联展示的商户列表
    unionShowTenantLists: Array<IOrgList>;
    boInfoId: number;
}

export interface IOrgList {
    id: number;
    // 商户ID
    tenantId: number;
    // 商户名称
    orgName: string;
    // 商户Logo URL
    orgLogo: string;
    // 是否开启共享 1 是；0否
    joinFlag: JoinFlagEnum;
    /**推入供需数 */
    pushBoNum: number;
    /**累计意向数 */
    cooperationNum: number;
    /**合作成功数(累计已联系) */
    cooperationSuccessNum: number;
}


export interface IEditBusinessOpportunitiesDetailEnum {
    id: number;
    // 模块类型
    moduleType?: ModuleTypeEnum;
    // 文件地址
    fileUrls?: string;
    // 文本
    text?: string
  }
  
  export interface DocFileResult {
    name: string;
    url: string;
    size: number;
    fileType: string;
  }